function onReady(){
    cbtipoDocumento   = $("#tipoDocumento");
        cargarTipoDocumento(cbtipoDocumento);
         cboTipoDocBusq =      $("#tipoDocumentoBusq");
     
        cargarTipoDocumento(cboTipoDocBusq);
        
           cboTipoDocBusqa =      $("#tipoDocumentoBusqTrata");
     
        cargarTipoDocumento(cboTipoDocBusqa);
        
        
     $("#tipoPresentacion1").on("change",ajaxMarcaProd);
     $("#marcaProducto1").on("change",ajaxPrecios);   
     
     obtenerProductos();
}

arrProductos = [];
arrSearch = [];

updaterF = function (item){
    return arrProductos[item];
}

function obtenerProductos(){
    
     $.ajax({
            type: "get",
            url: urlBaseX+'farmacia/obtener_productos',
            dataType: "json",                        
            cache: false,
            
            success: function(data){ 
                var i
                for ( i in data){    
                        arrProductos[data[i].descripcion] = data[i].codigoproducto;                    
                        arrSearch[arrSearch.length] = data[i].descripcion; 
                }
                var prod =   $("#prod1");    
               
                prod.typeahead({source: arrSearch,items: 15, minLength:3,updater : updaterF});        
           }
                
     });
    
}
function popularPersona(data){
      arrPersona = [];
      arrTipoDoc = [];
      var tabla = document.getElementById('tablaPersona');
      var rows = tabla.rows;
    
    while( rows.length > 1)
        tabla.deleteRow(rows.length-1);
    var i
    for ( i in data){    
                agregarFilaPopUpPersona(tabla);
                    tabla.rows[tabla.rows.length-1].cells[1].innerHTML = data[i].nombre ;
                    tabla.rows[tabla.rows.length-1].cells[2].innerHTML = data[i].apellido;
                    tabla.rows[tabla.rows.length-1].cells[3].innerHTML = data[i].descripciontd;
                    tabla.rows[tabla.rows.length-1].cells[4].innerHTML = data[i].codigoper;
                    arrPersona[arrPersona.length] = data[i].persona;
                    arrTipoDoc[arrTipoDoc.length] = data[i].tipodocumento;
}
    
}

function agregarFilaPopUpPersona(tabla){
     
	var num=tabla.rows.length;
        var objTr = document.createElement("tr");  
	objTr.ondblclick = function (){
            
    //            cambiarProductoEqui(this.cells[1].innerHTML,n)
                $('#myModalPersona').modal('hide');
                document.forms[0].hidCodPaciente.value = arrPersona[num-1];
                document.forms[0].nombres.value = this.cells[1].innerHTML+this.cells[2].innerHTML;
                document.forms[0].codigoPaciente.value = this.cells[4].innerHTML;
                //alert(arrTipoDoc[num-1]);
               cbtipoDocumento.val(arrTipoDoc[num-1]);
                cbtipoDocumento.trigger("liszt:updated");
    }
        var objTd1 = document.createElement("td");  
	objTd1.innerHTML = num;  
	objTr.appendChild(objTd1);
	var objTd2 = document.createElement("td"); 
	objTr.appendChild(objTd2); 
        var objTd = document.createElement("td");
	objTr.appendChild(objTd); 
	var objTd3 = document.createElement("td"); 
        objTr.appendChild(objTd3);
	var objTd4 = document.createElement("td"); 
        objTr.appendChild(objTd4);
	tabla.appendChild(objTr);
    
    
}

function busquedaPersona(){
     
     $.ajax({
            type: "get",
            url: urlBaseX+'farmacia/buscar_persona',
            dataType: "json",                        
                data: {nombre: document.forms[0].nombreBusq.value, apellidoPat :document.forms[0].apePatBusq.value,
                    apellidoMat:  document.forms[0].apeMatBusq.value, tipoDocumento :  $("#tipoDocumentoBusq").val(),
                    nroDocumento :  document.forms[0].nroDocumentoBusq.value},
            cache: false,
            
            success: function(data){ 
                 popularPersona(data);
            }
                
            });
}


function agregarFilaPopUp(tabla,n){
        var num=tabla.rows.length;
	var objTr = document.createElement("tr");  
        objTr.ondblclick = function (){
            
    //            cambiarProductoEqui(this.cells[1].innerHTML,n)
                $('#myModal').modal('hide');
               
                document.getElementsByName("codProd[]")[n].value = this.cells[1].innerHTML;
                obtenerProducto(n);
               
    }
	var objTd1 = document.createElement("td");  
	objTd1.innerHTML = num;  
	objTr.appendChild(objTd1);
	var objTd2 = document.createElement("td"); 
	objTr.appendChild(objTd2); 
        var objTd = document.createElement("td");
	objTr.appendChild(objTd); 
	var objTd3 = document.createElement("td"); 
        objTr.appendChild(objTd3);
        var objTd4 = document.createElement("td"); 
        objTr.appendChild(objTd4);
        
        tabla.appendChild(objTr);
    
    
}




function PoblarPopUp(data,n){
   // alert('PoblarPopUp'+n)
    var tabla = document.getElementById('tablProd');
    var rows = tabla.rows;
    
    while( rows.length > 1)
        tabla.deleteRow(rows.length-1);
    var i
    for ( i in data){    
                agregarFilaPopUp(tabla,n);
                    tabla.rows[tabla.rows.length-1].cells[1].innerHTML = data[i].codigoproducto;
                    tabla.rows[tabla.rows.length-1].cells[2].innerHTML = data[i].descripcion;
                    tabla.rows[tabla.rows.length-1].cells[3].innerHTML = data[i].laboratorio;
                    tabla.rows[tabla.rows.length-1].cells[4].innerHTML = data[i].precio;
                    
}
    
    
}


function buscarprodEqui(n){
  var  codProd = document.getElementsByName("hidCodProd[]")[n].value;
   if (codProd == ""){
       return;
   }   
    $('#myModal').modal('show')

       
   $.ajax({
            type: "get",
            url: urlBaseX+'farmacia/obtener_sustitutos',
            dataType: "json",                        
                data: {codigoProducto:codProd},
            cache: false,
            
            success: function(data){ 
                 
                 
                PoblarPopUp(data,n);
        
            }
                
            });
    
}


function obtenerProductosYPersona(){
    
    var codigo = document.forms[0].codigoProcedimiento.value;
    
    if (codigo == ''){
         document.forms[0].codigoProcedimiento.value = '';
                     document.forms[0].nombres.value = "";
                    document.forms[0].hidCodPaciente.value = "";
                    document.forms[0].tipoDocumento.value = "";
                    document.forms[0].codigoPaciente.value = "";
                        var tabla = document.getElementById('detalle');
                        var rows = tabla.rows;
                        while( rows.length > 1)
                            tabla.deleteRow(rows.length-1);
                        agregarFila();
                        return;
    }
    
   $.ajax({
            type: "get",
            url: urlBaseX+'farmacia/obtener_persona_producto',
            dataType: "json",                        
                data: {codigoProcedimiento:codigo},
            cache: false,
            
            success: function(data){
                if (data == null || data[0] == null){
                    alert("El procedimiento no existe");
                    document.forms[0].codigoProcedimiento.value = '';
                     document.forms[0].nombres.value = "";
                    document.forms[0].hidCodPaciente.value = "";
                    document.forms[0].tipoDocumento.value = "";
                    document.forms[0].codigoPaciente.value = "";
                        var tabla = document.getElementById('detalle');
                        var rows = tabla.rows;
                        while( rows.length > 1)
                            tabla.deleteRow(rows.length-1);
                        agregarFila();
                }else{
                    document.forms[0].nombres.value =  data[0].Nombres + ' '+data[0].Apellido_Paterno+' '+data[0].Apellido_Materno;
                    document.forms[0].hidCodPaciente.value = data[0].Persona;
                    document.forms[0].codigoPaciente.value = data[0].codigoDoc;
                     cbtipoDocumento.val(data[0].tipoDocumento);
                     cbtipoDocumento.trigger("liszt:updated");
                    PoblarTabla(data);
        }
            }
        });
    
    
}


function PoblarTabla(data){
    var tabla = document.getElementById('detalle');
    var prod = "";
    var rows = tabla.rows;
    while( rows.length > 1)
        tabla.deleteRow(rows.length-1);
    var i
    
    for ( i in data){    
                agregarFila();
             
           if (data[i].stock < 0){  
                document.getElementsByName("codProd[]")[i].style.background = 'red';
                prod = prod +      data[i].codProducto +"   ";
       } else{
               
                 document.getElementsByName("codProd[]")[i].style.background = 'blank';
           }
                
             
             document.getElementsByName("codProd[]")[i].value = data[i].codProducto;   
             document.getElementsByName("nombreProd[]")[i].value = data[i].descProducto;   
             document.getElementsByName("nombreLab[]")[i].value = data[i].laboratorio;   
             document.getElementsByName("PrecioProd[]")[i].value = data[i].precio; 
             document.getElementsByName("hidCodProd[]")[i].value = data[i].producto; 
            document.getElementsByName("cantidadProd[]")[i].value = data[i].cantidad; 
           
            obtenerTotal(i,false);
}
    if (prod != ""){
        alert("No existe stock suficiente para los siguientes productos "+prod)
    }
    
}


function ajaxMarcaProd(event){
    var line = event.currentTarget.id.substr(16);
    codigo = document.getElementsByName("hidCodProd[]")[line-1].value;
    tipoPresentacion = event.currentTarget.value;
    tipoPresentacionCbo =  $("#marcaProducto"+event.currentTarget.id.substr(16));
   $.ajax({
            type: "get",
            url: urlBaseX+'farmacia/obtener_marca',
            dataType: "json",                        
                data: {codigoProducto:codigo,tipoPresentacion:tipoPresentacion},
            cache: false,
            
            success: function(data){
            if (data[0] == null){
            document.getElementsByName("PrecioProd[]")[line-1].value = "";
            document.getElementsByName("hidPrecioProd[]")[line-1].value = "";
            document.getElementsByName("cantidadProd[]")[line-1].value = "";
            document.getElementsByName("hidTotalParProd[]")[line-1].value = "";
            document.getElementsByName("TotalParProd[]")[line-1].value = "";
          
                       //        alert("El producto ingresado no se encuentra registrado en el sistema");
                 recalcularTotal();      
                return;
            }
            
            document.getElementsByName("PrecioProd[]")[line-1].value = "";
            document.getElementsByName("hidPrecioProd[]")[line-1].value = "";
            document.getElementsByName("cantidadProd[]")[line-1].value = "";
            document.getElementsByName("hidTotalParProd[]")[line-1].value = "";
            document.getElementsByName("TotalParProd[]")[line-1].value = "";
            dataAjaxMarca = data;
           updateMarca(dataAjaxMarca,tipoPresentacionCbo);
            //document.forms[0].nombres.value =  data[0].Nombres + ' '+data[0].Apellido_Paterno+' '+data[0].Apellido_Materno;
              //document.forms[0].
           
            
            
              recalcularTotal();
        }
        });
    
    
}

function updateMarca(dataAjaxMarcaL,tipoPresentacionL){
    
   
      tipoPresentacionL.html("");
        tipoPresentacionL.append("<option></option>");
        for (var i in dataAjaxMarcaL){
            tipoPresentacionL.append("<option value='"+dataAjaxMarcaL[i].marca+"'>"+dataAjaxMarcaL[i].descripcion+"</option>");
        }

        tipoPresentacionL.trigger("liszt:updated");
        
    
}


function buscarPersona(){
    $('#myModalPersona').modal('show')
    
    var tabla = document.getElementById('tablaPersona');
     var rows = tabla.rows;
    while( rows.length > 1)
        tabla.deleteRow(rows.length-1);
}

function ajaxPrecios(event){
    //alert(event.currentTarget.id);
    var line = event.currentTarget.id.substr(13);
    //alert(line);
    var valor = event.currentTarget.value;// document.getElementsByName("hidCodProd[]")[line-1].value;
    unidad = event.currentTarget.value;
   if (dataAjaxMarca == null){
            document.getElementsByName("PrecioProd[]")[line-1].value = "";
            document.getElementsByName("hidPrecioProd[]")[line-1].value = "";
            document.getElementsByName("cantidadProd[]")[line-1].value = "";
            document.getElementsByName("hidTotalParProd[]")[line-1].value = "";
            document.getElementsByName("TotalParProd[]")[line-1].value = "";
          
                       //        alert("El producto ingresado no se encuentra registrado en el sistema");
                 recalcularTotal();      
                return;
            }
            var i
            for ( i in dataAjaxMarca){
                if (dataAjaxMarca[i].marca == valor) break;
            }
            document.getElementsByName("PrecioProd[]")[line-1].value = dataAjaxMarca[i].precioventa;
            document.getElementsByName("hidPrecioProd[]")[line-1].value = dataAjaxMarca[i].precioventa;
            document.getElementsByName("cantidadProd[]")[line-1].value = "";
            document.getElementsByName("hidTotalParProd[]")[line-1].value = "";
            document.getElementsByName("TotalParProd[]")[line-1].value = "";
            
            //document.forms[0].nombres.value =  data[0].Nombres + ' '+data[0].Apellido_Paterno+' '+data[0].Apellido_Materno;
              //document.forms[0].
              
              recalcularTotal();
        }
    
    


function cargarTipoDocumento(x){
    
    $.ajax(
        {
            url:urlBaseX+"farmacia/wsGetTipoDocumento" ,
            type: 'GET',
            dataType: 'json',
            cache: false,
            beforeSend: function() {
            },
            success: function(data){
          
             updateTipoDoc(data,x);
            }
        });
    
    
}


function updateTipoDoc(data,x){
    tipoDocumento = data;
    
      x.html("");
        x.append("<option></option>");
        for (var i in tipoDocumento){
            x.append("<option value='"+tipoDocumento[i].TipoDocumento+"'>"+tipoDocumento[i].Descripcion+"</option>");
        }

        x.trigger("liszt:updated");
        
}


function llenarCombo(data,line){
    var cbtipoPresentacion = $("#tipoPresentacion"+(line+1)+"");
     cbtipoPresentacion.html("");
        cbtipoPresentacion.append("<option></option>");
        for ( i = 0; i < data.length;i++){
            cbtipoPresentacion.append("<option value='"+data[i].unidadproducto+"'>"+data[i].descripcion+"</option>");
        } 
     cbtipoPresentacion.trigger("liszt:updated");
}

function agregarFila(){
	
       // urlBase = urlBase.replace("/","");
        var tabla = document.getElementById("detalle"); 
	var num=tabla.rows.length;
	var objTr = document.createElement("tr");  
	var objTd1 = document.createElement("td");  
	objTd1.innerHTML = num;  
	objTr.appendChild(objTd1);
	var objTd2 = document.createElement("td"); 
	StrHtml = "<input type='hidden' name='hidCodProd[]'><input class='input-small' name='codProd[]' type='text' onblur='obtenerProducto("+(num-1)+")'  placeholder='cod. producto' id='prod"+num+"'>";
        objTd2.innerHTML = StrHtml;	
	objTr.appendChild(objTd2); 
        var objTd = document.createElement("td");
	StrHtml="<input class='input-prepend' type='text' name='nombreProd[]' disabled>";
	objTd.innerHTML = StrHtml; 
	objTr.appendChild(objTd); 
	var objTd3 = document.createElement("td"); 
        StrHtml="<input class='input-small' type='text' name='nombreLab[]' disabled>";
	objTd3.innerHTML = StrHtml;  // asignamos el html al td
	objTr.appendChild(objTd3);
	var objTd4 = document.createElement("td"); 
        StrHtml="<input type='hidden' name='hidPrecioProd[]'><input class='input-mini' type='text' disabled name='PrecioProd[]'>"
	objTd4.innerHTML = StrHtml; 
	var objTd5 = document.createElement("td"); 
	StrHtml="<input class='input-mini' type='text' placeholder='cantidad' onblur='obtenerTotal("+(num-1)+",true)' name='cantidadProd[]'>"
	objTd5.innerHTML = StrHtml;
        var objTd6 = document.createElement("td"); 
	StrHtml="<input type='hidden' name='hidTotalParProd[]'><input class='input-mini' type='text' name='TotalParProd[]' disabled>"
	objTd6.innerHTML = StrHtml;
        var objTd7 = document.createElement("td"); 
	StrHtml="<button class='btn btn-mini  btn btn-success' type='button' onclick='buscarprodEqui("+(num-1)+")' STYLE='margin-bottom: 10PX;' >Buscar</button>"
	objTd7.innerHTML = StrHtml;
        
        
        objTr.appendChild(objTd3);
        objTr.appendChild(objTd4);
        objTr.appendChild(objTd5);
        objTr.appendChild(objTd6);
        objTr.appendChild(objTd7);
        tabla.appendChild(objTr);
        
        $("#prod"+num).typeahead({source: arrSearch,items: 15, minLength:3,updater : updaterF});
}
function obtenerTotal(i,bool){
    
    if (document.getElementsByName("hidCodProd[]")[i].value == ""){
       document.getElementsByName("cantidadProd[]")[i].value="";
        recalcularTotal();
        return;
    }else{  
     
     if (document.getElementsByName("cantidadProd[]")[i].value ==  ""){
         recalcularTotal();
         return;
     
    }
        var cant =    parseFloat(document.getElementsByName("cantidadProd[]")[i].value);
        var precio = document.getElementsByName("PrecioProd[]")[i].value;
        
        var codigoProd = document.getElementsByName("hidCodProd[]")[i].value;
        
          $.ajax(
        {
            url:urlBaseX+"farmacia/obtenerStock" ,
            type: 'GET',
            dataType: 'json',
            cache: false,
              data: {codigoProducto:codigoProd},
            success: function(data){
                if (data[0].stock < cant && bool){
                    alert("No existe suficiente stock, solo quedan "+data[0]["stock"]+" unidades en almacen");
                document.getElementsByName("codProd[]")[i].style.background = 'red';
        recalcularTotal();
       
            }else{
                if (data[0].stock >= cant)
                document.getElementsByName("codProd[]")[i].style.background = 'white';
            }
            
            
            document.getElementsByName("hidTotalParProd[]")[i].value = cant*precio;
            document.getElementsByName("TotalParProd[]")[i].value = cant*precio;
            recalcularTotal();
       
            }
        });
        
 }       
}


function obtenerProducto(i){
  var  line = i;
    var codigo = "";
    codigo = document.getElementsByName("codProd[]")[i].value;
    if (codigo == ""){ 
             document.getElementsByName("codProd[]")[line].value = '';   
             document.getElementsByName("nombreProd[]")[line].value = '';   
             document.getElementsByName("nombreLab[]")[line].value = '';   
             document.getElementsByName("PrecioProd[]")[line].value = ''; 
             document.getElementsByName("hidCodProd[]")[line].value = ''; 
             document.getElementsByName("cantidadProd[]")[line].value = ''; 
             document.getElementsByName("TotalParProd[]")[line].value = ''; 
             recalcularTotal();
        return;}
    var method = urlBaseX+'farmacia/obtener_producto';
    
    $.ajax({
            type: "get",
            url: method,
            dataType: "json",                        
            data: 'codigoProducto='+codigo,
            cache: false,
            
            success: function(data){
            if (data == null || data[0] == null){
                alert('Producto no existe');
             document.getElementsByName("codProd[]")[line].value = '';   
             document.getElementsByName("nombreProd[]")[line].value = '';   
             document.getElementsByName("nombreLab[]")[line].value = '';   
             document.getElementsByName("PrecioProd[]")[line].value = ''; 
             document.getElementsByName("hidCodProd[]")[line].value = ''; 
             document.getElementsByName("cantidadProd[]")[line].value = ''; 
             document.getElementsByName("TotalParProd[]")[line].value = ''; 
             
            }    
            else{
                
                
             document.getElementsByName("codProd[]")[line].value = data[0].codProducto;   
             document.getElementsByName("nombreProd[]")[line].value = data[0].descProducto;   
             document.getElementsByName("nombreLab[]")[line].value = data[0].laboratorio;   
             document.getElementsByName("PrecioProd[]")[line].value = data[0].precio; 
             document.getElementsByName("hidCodProd[]")[line].value = data[0].producto; 
             document.getElementsByName("cantidadProd[]")[line].value = ''; 
             document.getElementsByName("TotalParProd[]")[line].value = ''; 
             
            }
            recalcularTotal();
        }
        });
    
    
}


function obtenerPaciente(urlBase){
  
    var codigo = document.forms[0].codigoPaciente.value;
 
    var method = urlBase+'paciente/obtenerPacienteAjax';
     $.ajax({
            type: "get",
            url: urlBase+'paciente/obtenerPacienteAjax',
            dataType: "json",                     
            data:{codigoDocumento: document.forms[0].codigoPaciente.value,tipoDoc:cbtipoDocumento.val()},
            cache: false, beforeSend: function() {
           // alert('aaaa');
            },                       
            success: function(data){
               
                if (data[0] == undefined){
                    document.forms[0].nombres.value = "";
                    document.forms[0].hidCodPaciente.value = "";
                }else{
                    document.forms[0].nombres.value =  data[0].Nombres + ' '+data[0].Apellido_Paterno+' '+data[0].Apellido_Materno;
                    document.forms[0].hidCodPaciente.value = data[0].Persona;
              }},
              
              error:function(){
                  alert('Ocurrio un error en el proceso');
              }
              
        
        });
    
}

function recalcularTotal(){
    var suma = 0;
    for (var i = 0;i < document.getElementsByName("TotalParProd[]").length;i++){
        suma += parseFloat(document.getElementsByName("TotalParProd[]")[i].value==""?"0":document.getElementsByName("TotalParProd[]")[i].value);
        
    }
    
    document.forms[0].PrecioTotal.value = suma;
    document.forms[0].hidPrecioTotal.value = suma;
}


function busquedaTratamiento(){
 var tabla = document.getElementById('tablaTratamiento');
    var rows = tabla.rows;
    
    while( rows.length > 1)
        tabla.deleteRow(rows.length-1);

$.ajax({
            type: "get",
            url: urlBaseX+'farmacia/buscar_tratamiento',
            dataType: "json",                        
                data: {nombre: document.forms[0].nombreBusqTrata.value, apellidoPat :document.forms[0].apePatBusqTrata.value,
                    apellidoMat:  document.forms[0].apeMatBusqTrata.value, tipoDocumento :  $("#tipoDocumentoBusqTrata").val(),
                    nroDocumento :  document.forms[0].nroDocumentoBusqTrata.value},
            cache: false,
            
            success: function(data){ 
                 popularTratamiento(data);
            }
                
            });
}


function popularTratamiento(data){
    
  var tabla = document.getElementById('tablaTratamiento');
    var rows = tabla.rows;
    
    while( rows.length > 1)
        tabla.deleteRow(rows.length-1);
    var i
    for ( i in data){    
                agregarFilaPopUpTratamiento(tabla);
                    tabla.rows[tabla.rows.length-1].cells[2].innerHTML = data[i].nombre ;
                    tabla.rows[tabla.rows.length-1].cells[3].innerHTML = data[i].apellido;
                    tabla.rows[tabla.rows.length-1].cells[1].innerHTML = data[i].proc;
                    tabla.rows[tabla.rows.length-1].cells[4].innerHTML = data[i].fi;
                    

}
 
function agregarFilaPopUpTratamiento(tabla){
     var num=tabla.rows.length;
	var objTr = document.createElement("tr");  
        objTr.ondblclick = function (){
            
    //            cambiarProductoEqui(this.cells[1].innerHTML,n)
                $('#myModalTratameinto').modal('hide');
                document.forms[0].codigoProcedimiento.value = this.cells[1].innerHTML;
                obtenerProductosYPersona();
               
    }
	var objTd1 = document.createElement("td");  
	objTd1.innerHTML = num;  
	objTr.appendChild(objTd1);
	var objTd2 = document.createElement("td"); 
	objTr.appendChild(objTd2); 
        var objTd = document.createElement("td");
	objTr.appendChild(objTd); 
	var objTd3 = document.createElement("td"); 
        objTr.appendChild(objTd3);
        var objTd4 = document.createElement("td"); 
        objTr.appendChild(objTd4);
        
        tabla.appendChild(objTr);
    
    
    
}
 
}